package com.ruoyi.enforce.domain;

import com.fasterxml.jackson.annotation.JsonAlias;
import com.fasterxml.jackson.annotation.JsonEnumDefaultValue;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import javax.validation.constraints.NotNull;
import java.util.Date;

/**
 * 项目实施策划的组织机构管理对象 enforce_org_manage
 *
 * @author ruoyi
 * @date 2021-11-30
 */
public class EnforceOrgManage extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * $column.columnComment
     */
    private Long id;


    /**
     * 项目id
     */
    @Excel(name = "项目id")
    private Long projectId;

    @Excel(name = "项目流程进度")
    private int projectProgress; //数据字典

    /**
     * 项目开启时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "项目开启时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date beginDate;

    /**
     * 项目结束节点
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "项目结束节点", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endDate;

    /**
     * 任务内容
     */
    @Excel(name = "任务内容")
    private String mission;

    /**
     * 实施人员
     */
    @Excel(name = "实施人员")
    private String userIds;

    /**
     * $column.columnComment
     */
    @Excel(name = "实施人员")
    private String userNames;

    /**
     * 是否为必要事项
     */
    @Excel(name = "是否为必要事项")
    private boolean major;


    /**
     * 完成情况
     */
    @Excel(name = "完成情况描述")
    private String completionDesc;

    @Excel(name = "是否完成")
    private boolean completed;


    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public void setProjectId(Long projectId) {
        this.projectId = projectId;
    }

    public Long getProjectId() {
        return projectId;
    }

    public void setBeginDate(Date beginDate) {
        this.beginDate = beginDate;
    }

    public Date getBeginDate() {
        return beginDate;
    }

    public void setEndDate(Date endDate) {
        this.endDate = endDate;
    }

    public Date getEndDate() {
        return endDate;
    }

    public void setMission(String mission) {
        this.mission = mission;
    }

    public String getMission() {
        return mission;
    }

    public void setUserIds(String userIds) {
        this.userIds = userIds;
    }

    public String getUserIds() {
        return userIds;
    }

    public void setUserNames(String userNames) {
        this.userNames = userNames;
    }

    public String getUserNames() {
        return userNames;
    }

    public boolean isMajor() {
        return major;
    }

    public void setMajor(boolean major) {
        this.major = major;
    }

    public int getProjectProgress() {
        return projectProgress;
    }

    public void setProjectProgress(int projectProgress) {
        this.projectProgress = projectProgress;
    }

    public String getCompletionDesc() {
        return completionDesc;
    }

    public void setCompletionDesc(String completionDesc) {
        this.completionDesc = completionDesc;
    }

    public boolean isCompleted() {
        return completed;
    }

    public void setCompleted(boolean completed) {
        this.completed = completed;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("projectId", getProjectId())
                .append("projectProgress", getProjectProgress())
                .append("beginDate", getBeginDate())
                .append("endDate", getEndDate())
                .append("mission", getMission())
                .append("userIds", getUserIds())
                .append("userNames", getUserNames())
                .append("isMajor", isMajor())
                .append("isCompleted", isCompleted())
                .append("completionDesc", getCompletionDesc())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateTime", getUpdateTime())
                .toString();
    }
}
